/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fr.maistre.swarn;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Louis Maistre
 */
public abstract class Reproducer extends Entity {
    
    protected List<Entity> parents = new ArrayList<>();
    protected List<Entity> childs = new ArrayList<>();

	


	public Reproducer(fr.maistre.swarn.DNA DNA, Environement environement,
			Goal goal, ListRessources ressourcesCritiques,
			ListRessources ressources) {
		super(DNA, environement, goal, ressourcesCritiques, ressources);
		// TODO Auto-generated constructor stub
	}

	public Reproducer(fr.maistre.swarn.DNA DNA, Environement environement,
			Goal goal, ListRessources ressourcesCritiques) {
		super(DNA, environement, goal, ressourcesCritiques);
		// TODO Auto-generated constructor stub
	}

	@Override
    public String toString() {
        return super.toString() + childs.size() + " child(s) ";
    }
    
    abstract protected ListRessources getReproductionCost() ;
    
    abstract protected Entity create(DNA DNA, Environement environement,
			Goal goal, ListRessources ressourcesCritiques,
			ListRessources ressources);
    
    
}
